草庐IT

c++ - DLL的开销

全部标签

windows - XChat for Windows 中的 minigtk.dll 是如何工作的?

我过去常常为Windows编写一些pygtk应用程序,但是GTKforWindows库总是很难维护。我发现XChatforWindows使用472KBminigtk.dll。我也可以将其用作pygtk和其他工具的标准gtk替代品吗? 最佳答案 minigtk主要是gtk的修改形式,其中gtk的部分必须运行XChat,但是minigtk源的使用严重受限,因为Zed不希望其他人使用它。 关于windows-XChatforWindows中的minigtk.dll是如何工作的?,我们在Stac

c++ - 谁能解释为什么这两个转换为 unsigned long long 会产生不同的结果?

LARGE_INTEGERlpPerformanceCount,lpFrequency;QueryPerformanceCounter(&lpPerformanceCount);QueryPerformanceFrequency(&lpFrequency);(Count.QuadPart是一个显示CPU计数的longlong)(Freq.QuadPart是一个longlong,表示秒数的频率)尝试实时打印微秒。稳定输出:printf("%llu\n",((longdouble)lpPerformanceCount.QuadPart/lpFrequency.QuadPart)*10000

windows - 崩溃后获取 DLL 地址的函数

我知道当应用程序崩溃时,系统会报告它在mydll.dll中的0x00004b79位置崩溃。我有源代码和二进制文件,但我没有PDB或该DLL构建中的任何列表文件。崩溃是可重复的,但我无法在生产机器上安装调试器,并且在开发或调试环境中不会发生崩溃。我已经设置了Dr.Watson,并且有故障转储和Dr.Watson日志文件。Dr.Watson日志文件包含正在执行的函数的反汇编:10604b708b442408moveax,[esp+0x8]10604b748b542404movedx,[esp+0x4]10604b7850pusheaxFAULT->10604b798b4120moveax,

windows - 调用 kernel32.dll 函数时获取调用堆栈

我有一个更改其当前目录的进程,我想知道它发生的时间和地点。我怎么能那样做?我尝试使用VisualStudio在SetCurrentDirectoryA/SetCurrentDirectoryW中设置断点,但它不起作用。 最佳答案 您是在调试自己的程序,还是没有源代码的程序?VisualStudio调试器对于调试无源应用程序不是很友好;在那种情况下,我会推荐WinDbg或OllyDbg-甚至跳过调试器并使用EasyHook编写一个检测记录器.编辑:尝试在{,,kernel32.dll}_SetCurrentDirectoryA@4处设

c - 防止过多的 LoadLibrary/FreeLibrary

我正在编写一个代理库(称为库A),它只是与系统上可能存在或不存在的另一个DLL(称为库B)的接口(interface)。这个想法是程序将链接到这个库A而不是原始库B;如果系统上没有安装库B,库A将处理错误。所以一个典型的代理函数看起来像这样:intfunction(intarg1,intarg2){HINSTANCEhinstLib;UINTerrormode=SetErrorMode(SEM_FAILCRITICALERRORS);SetErrorMode(errormode|SEM_FAILCRITICALERRORS);hinstLib=LoadLibrary(TEXT(ORIG

windows - 为什么在 Windows 7 64 位(使用 Eclipse/Photran/Cygwin)上使用 GDB 调试我的 Fortran 代码时会出现缺少 DLL 错误?

我的设置如下:操作系统:Windows7家庭高级版64位Eclipse:带有CDT的Helios3.6.164位和PhotranJavaSE运行时环境:1.6.0_21Java热点:64位服务器虚拟机(构建17.0-b17,混合模式)Cygwin1.7.2(32位)我的初始测试Fortran应用程序只打印“HelloWorld!”并退出。代码构建并运行良好,尽管在Eclipse的“问题”选项卡中有以下2个警告DescriptionResourcePathLocationTypeErrorlaunchingexternalscannerinfogenerator(gcc-E-P-v-dD

c# - Windows 路径变量 - 两个文件夹匹配 DLL - 首先选择哪个

出于某种原因,我有一个PATH变量,它有多个条目,我的exe可以在其中找到。我正在努力寻找Windows在解析DLLS时使用的顺序。它是否扫描Path变量并使用第一个(列表中的)匹配项?在我的测试中,它看起来像是使用了最后一个。有谁知道这是什么行为,是否在任何地方都有记录? 最佳答案 我相信读到的最后一个获胜。 关于c#-Windows路径变量-两个文件夹匹配DLL-首先选择哪个,我们在StackOverflow上找到一个类似的问题: https://stac

c++ - DeleteIPAddress 和 AddIpAddress 问题

我试着用这个函数编写添加ip地址的程序DWORDAddIPAddress(__inIPAddrAddress,__inIPMaskIpMask,__inDWORDIfIndex,__outPULONGNTEContext,__outPULONGNTEInstance);我添加了,但是怎么删除呢。DeleteIPAddress将NTEContext作为参数我如何在MSDN中获取它,他们写道它由AddIPAddress函数返回但是当我第二次使用相同的ip地址调用它时它返回错误2.怎么办?我可以在cmd中使用Ipconfig命令查看添加的ip地址,可能还有其他方法可以手动查看或删除它

c++ - 取消WIN32线程池中计划的work/io/timer项

我一直在研究Windows的(新的?)线程池API。我一直在关注UsingtheThreadPoolFunctions中的示例我一直在仔细研究MSDN上的API。关于清理组,我有些不明白。调用SetThreadpoolCallbackCleanupGroup()时,第三个参数描述为Thecleanupcallbacktobecalledifthecleanupgroupiscanceledbeforetheassociatedobjectisreleased.ThefunctioniscalledwhenyoucallCloseThreadpoolCleanupGroupMembers

windows - 批量设置 .exe 和 .dll 文件的版本号

是否有一个工具可以让我做这样的事情:thetool.exe'1.0.0.1'mydll.dllmyexe.exe?基本上我想自动化构建过程,然后让工具自动为我设置版本号。 最佳答案 您可以使用这个问题的答案:HowdoIsettheversioninformationforanexisting.exe,.dll?verpatch/vafoodll.dll%VERSION%"%FILEDESCR%""%COMPINFO%""%PRODINFO%""%BUILDINFO%"可在http://www.codeproject.com/KB/